{% extends 'generic/object.html' %}
{% load static %}
{% load helpers %}
{% load plugins %}
{% load render_table from django_tables2 %}
{% load i18n %}

{% block extra_controls %}
  {% if perms.core.sync_datasource %}
    {% if object.ready_for_sync %}
      <form action="{% url 'core:datasource_sync' pk=object.pk %}" method="post">
        {% csrf_token %}
        <button type="submit" class="btn btn-primary">
          <i class="mdi mdi-sync" aria-hidden="true"></i> {% trans "Sync" %}
        </button>
      </form>
    {% else %}
      <span class="inline-block" tabindex="0" data-bs-toggle="tooltip" data-bs-delay="100" data-bs-placement="bottom">
        <button class="btn btn-primary" disabled>
          <i class="mdi mdi-sync" aria-hidden="true"></i> {% trans "Sync" %}
        </button>
      </span>
    {% endif %}
  {% endif %}
{% endblock %}

{% block content %}
  <div class="row mb-3">
    <div class="col col-12 col-md-6">
      <div class="card">
        <h2 class="card-header">{% trans "Data Source" %}</h2>
        <table class="table table-hover attr-table">
          <tr>
            <th scope="row">{% trans "Name" %}</th>
            <td>{{ object.name }}</td>
          </tr>
          <tr>
            <th scope="row">{% trans "Type" %}</th>
            <td>{{ object.get_type_display }}</td>
          </tr>
          <tr>
            <th scope="row">{% trans "Enabled" %}</th>
            <td>{% checkmark object.enabled %}</td>
          </tr>
          <tr>
            <th scope="row">{% trans "Status" %}</th>
            <td>{% badge object.get_status_display bg_color=object.get_status_color %}</td>
          </tr>
          <tr>
            <th scope="row">{% trans "Sync interval" %}</th>
            <td>{{ object.get_sync_interval_display|placeholder }}</td>
          </tr>
          <tr>
            <th scope="row">{% trans "Last synced" %}</th>
            <td>{{ object.last_synced|placeholder }}</td>
          </tr>
          <tr>
            <th scope="row">{% trans "Description" %}</th>
            <td>{{ object.description|placeholder }}</td>
          </tr>
          <tr>
            <th scope="row">{% trans "URL" %}</th>
            <td>
              {% if not object.type.is_local %}
                <a href="{{ object.source_url }}">{{ object.source_url }}</a>
              {% else %}
                {{ object.source_url }}
              {% endif %}
            </td>
          </tr>
          <tr>
            <th scope="row">{% trans "Ignore rules" %}</th>
            <td>
              {% if object.ignore_rules %}
                <pre>{{ object.ignore_rules }}</pre>
              {% else %}
                {{ ''|placeholder }}
              {% endif %}</td>
          </tr>
        </table>
      </div>
      {% include 'inc/panels/tags.html' %}
      {% include 'inc/panels/comments.html' %}
      {% plugin_left_page object %}
    </div>
    <div class="col col-12 col-md-6">
      <div class="card">
        <h2 class="card-header">{% trans "Backend" %}</h2>
          {% with backend=object.backend_class %}
            <table class="table table-hover attr-table">
              {% for name, field in backend.parameters.items %}
                <tr>
                  <th scope="row">{{ field.label }}</th>
                  {% if name in backend.sensitive_parameters %}
                    <td>********</td>
                  {% else %}
                    <td>{{ object.parameters|get_key:name|placeholder }}</td>
                  {% endif %}
                </tr>
              {% empty %}
                <tr>
                  <td colspan="2" class="text-muted">
                    {% trans "No parameters defined" %}
                  </td>
                </tr>
              {% endfor %}
            </table>
          {% endwith %}
      </div>
      {% include 'inc/panels/related_objects.html' %}
      {% include 'inc/panels/custom_fields.html' %}
      {% plugin_right_page object %}
    </div>
  </div>
  <div class="row mb-3">
    <div class="col col-md-12">
      <div class="card">
        <h2 class="card-header">{% trans "Files" %}</h2>
        {% htmx_table 'core:datafile_list' source_id=object.pk %}
      </div>
      {% plugin_full_width_page object %}
    </div>
  </div>
{% endblock %}
